namespace FU.Capstones.IMS.Services.Common
{
    public sealed class InventoryConstants
    {
        public const string DataMissingMessage="{0} data is missing!";
        public const string ServiceNamespace = "http://www.ims.com";
        public const string ServiceName = "InventoryService";

        public const string EmailRegex = @"\b[a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}\b";
        public const string UsernameRegex = @"\b[a-z]{4,}[0-9]*\b";
        public const string CodeRegex = @"\b[A-Z]+[0-9]*\b";
        public const string ICNRegex = @"\b[0-9]{9}\b";

        public const string IMSConnectionString = "IMSConnectionString";

        public sealed class Messages
        {
            public const string NullData = "Dữ liệu không hợp lệ.";
            public const string InvalidUsername = "Tên đăng nhập khong đúng định dang.";
            public const string InvalidEmail = "Thư điện tử không đúng định dạng.";
            public const string InvalidICN = "Số chứng minh thư không đúng định dạng.";
            public const string InvalidStringLength = "Số kí tự trong chuỗi không phù hợp.";
            public const string InvalidGender = "Giới tính không đúng.";

            public const string UsernameNotExists = "Tên đang nhập hợp lệ";
            public const string UsernameExists = "Tên đang nhập đã tồn tại";

            public const string ChangePasswordFailed = "Thay đổi mật khẩu không thành công.";
            public const string ChangePasswordSuccessfully = "Thay đổi mật khẩu thành công.";

            public const string LoginSuccessfully = "Đăng nhập thành công.";
            public const string LoginFailed = "Sai tên đăng nhập hoặc mật khẩu.";
            public const string Unauthorizated = "Bạn chưa được cấp quyền sử dụng hệ thống.";

            public const string InsertSuccessfully = "Bản ghi mới đã được thêm vào cơ sở dữ liệu.";
            public const string InsertFailed = "Có lỗi khi thêm mới bản ghi.";
            
            public const string UpdateSuccessfully = "Bản ghi trong cơ sở dữ liệu đã được cập nhật.";
            public const string UpdateFailed = "Có lỗi khi cập nhật bản ghi.";
            
            public const string DeleteSuccessfully = "Bản ghi đã được xóa khỏi cơ sở dữ liệu.";
            public const string DeleteFailed = "Có lỗi khi xóa bản ghi.";
            public const string DeleteConflict = "Có xung đột khi xóa bản ghi.";

            public const string UndoDeleteSuccessfully = "Bản ghi đã được hồi phục trong cơ sở dữ liệu.";
            public const string UndoDeleteFailed = "Có lỗi khi hồi phục bản ghi đã xóa.";

            public const string SearchSuccessfully = "Tìm kiếm thành công.";
            public const string SearchFailed = "Tìm kiếm thất bại.";

            public const string GetSuccessfully = "Truy vấn thông tin thành công.";
            public const string GetFailed = "Có lỗi khi truy vấn cơ sở dữ liếu.";
            public const string NA = "Không tồn tại bản ghi nào trong cơ sở dữ liệu.";
        }

        public sealed class AuthorizationKeys
        {
            public const string CanViewOrderMaterialKey = "CanViewOrderMaterialKey";
            public const string CanEditOrderMaterialKey = "CanEditOrderMaterialKey";
            public const string CanAddOrderMaterialKey = "CanAddOrderMaterialKey";

            public const string CanViewOrderProductKey = "CanViewOrderProductKey";
            public const string CanEditOrderProductKey = "CanEditOrderProductKey";
            public const string CanAddOrderProductKey = "CanAddOrderProductKey";

            public const string CanViewEmployeeKey = "CanViewEmployeeKey";
            public const string CanEditEmployeeKey = "CanEditEmployeeKey";
            public const string CanAddEmployeeKey = "CanAddEmployeeKey";

            public const string CanViewEmploymentTypeKey = "CanViewEmploymentTypeKey";
            public const string CanEditEmploymentTypeKey = "CanEditEmploymentTypeKey";
            public const string CanAddEmploymentTypeKey = "CanAddEmploymentTypeKey";

            public const string CanViewRoleKey = "CanViewRoleKey";
            public const string CanEditRoleKey = "CanEditRoleKey";
            public const string CanAddRoleKey = "CanAddRoleKey";

            public const string CanViewPartnerKey = "CanViewPartnerKey";
            public const string CanEditPartnerKey = "CanEditPartnerKey";
            public const string CanAddPartnerKey = "CanAddPartnerKey";

            public const string CanViewWarehouseKey = "CanViewWarehouseKey";
            public const string CanEditWarehouseKey = "CanEditWarehouseKey";
            public const string CanAddWarehouseKey = "CanAddWarehouseKey";

            public const string CanViewProductKey = "CanViewProductKey";
            public const string CanEditProductKey = "CanEditProductKey";
            public const string CanAddProductKey = "CanAddProductKey";

            public const string CanViewMaterialKey = "CanViewMaterialKey";
            public const string CanEditMaterialKey = "CanEditMaterialKey";
            public const string CanAddMaterialKey = "CanAddMaterialKey";

        }
    }
}
